package com.algaworks.cursojsf2.financeiro.view;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;

import com.algaworks.cursojsf2.financeiro.model.Pessoa;
import com.algaworks.cursojsf2.financeiro.service.GestaoPessoas;
import com.algaworks.cursojsf2.financeiro.service.RegraNegocioException;
import com.algaworks.cursojsf2.financeiro.util.FacesUtil;
import com.algaworks.cursojsf2.financeiro.util.Repositorios;

@ManagedBean
public class ConsultaPessoaBean {
	private Repositorios repositórios = new Repositorios();
	private List<Pessoa> pessoas ;
	private Pessoa pessoaSelecionada;

	
	@PostConstruct
	public void inicializar(){
		
		this.pessoas = this.repositórios.getPessoas().todas();
		
	}
	
	public List<Pessoa> getPessoas() {
		return pessoas;
	}

	public void setPessoas(List<Pessoa> pessoas) {
		this.pessoas = pessoas;
	}

	public Pessoa getPessoaSelecionada() {
		return pessoaSelecionada;
	}

	public void setPessoaSelecionada(Pessoa pessoaSelecionada) {
		this.pessoaSelecionada = pessoaSelecionada;
	}
	
	
	public void excluir(){
		GestaoPessoas gestaoPessoas = new GestaoPessoas(this.repositórios.getPessoas());
		
		try {
			gestaoPessoas.apagar(pessoaSelecionada);
			this.inicializar();
			FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_INFO, "Pessoa Excluída!");
			
			
			
		} catch (RegraNegocioException e) {
			FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_ERROR, e.getMessage());
		}
	}
	
	
	
}
